/**
 * Created by Administrator on 2017-06-12.
 */
var index = {
    init : function(){
        this.sliderH();         //计算左边栏高度
        this.treeTabInit = this.treeTab();          //初始化树切换函数
//        this.treeTabInit.searchFunc(1);
        this.detailInit = this.detail();            //初始化详情页tab切换
        //this.detailInit.clickCar(2);
        this.bind();
        this.ztreeCreat();
        this.initTableData();                       //查询结果表初始化
        this.initSubscribeTable();                  //订阅表初始化
        this.carTree=null; 
        this.map=global.map();
        this.marker=null;
        mapTool.drag();
    },

    /**
     * 计算各div高度的高度
     * */
    sliderH : function(){
        var winH = $(window).height();
        var sliderH = winH - 42;
        $('.content').css({
            'height' : sliderH + 'px'
        });

        var treeDivH = sliderH - 64 - 225;
        $('.tree-cont').height(treeDivH);

        var mapH = sliderH - 229;
        $('#mymap').height(mapH);

        this.flexigridH = treeDivH - 60;
    },

    /**
     * 树切换
     * */
    treeTab : function(){
        var index = 0;
        $('.tree-title-list').click(function(){
            index = $(this).index();
            func(index);
        });
        var func = function(index){
            $('.tree-cont-list').hide().eq(index).show();
            $('.tree-title-line').css({
                left:50 * index + '%'
            });
        };

        var searchFunc = function(eq){
            index = eq;
            func(index);
           
        };

        return {
            searchFunc : searchFunc
        };
    },

    /**
     * 详情内容tab切换
     * */
    detail : function(){
        var index = 0;
        var func = function(index){
            $('.car-details-title-list').removeClass('active').eq(index).addClass('active');
            $('.car-details-cont-list').removeClass('active').eq(index).addClass('active');
        };
        $('.car-details-title ').on('click','.car-details-title-list',function(){
            index = $(this).index();
            func(index);
        });

        var clickCar= function(eq){
            index = eq;
            func(index);
        };

        return {
            clickCar : clickCar,
            index : function(){
                return index;
            }
        }
    },

    /**
     * 查看大图
     * */
    lookBigImg : function(){
        $('.lager-img').show();
        $('#mask').show();
        var img = document.getElementById('popimg');
        img.setAttribute('src','https://images.zhiweihl.com/Uploads/Images/lifanr/20170605/1496648991770731.jpg');
        img.onload = function(){
            var width = img.width,
                height = img.height;
            $('.lager-img').css({
                width : width,
                height: height,
                'margin-top' : -height/2,
                'margin-left' : -width/2
            });
        };
    },

    /**
     * 加载树
     * */
    ztreeCreat : function(){
        var setting = {
            check : {
                enable : true,

                chkboxType : {
                    "Y" : "ps",
                    "N" : "ps"
                }
            },
            data : {
                key : {
                    name : "NAME"
                },
                simpleData : {
                    enable : true,
                    idKey : "ID",
                    pIdKey : "PID",
                    rootPId : 0
                }
            },
            callback : {
//            	onExpand : _this.zTreeOnExpand,
//                onCollapse : _this.zTreeOnCollapse,
                onCheck : index.zTreeOnCheck
//                onClick : _this.zTreeOnClick
            }
        };
        $.ajax({
			type : 'post',
			async : true,
			url : appCtx+"/gis/monitor/getVehicleTree.html",
			cache : false,
			dataType : "JSON",
			success : function(data){
				carTree=$.fn.zTree.init($("#carTreeList"), setting, data);
			}
		});
        
    },

    /**
     * 查询结果表格
     * */
    initTableData : function(){
    	 var timer;
    	 var getVehicleStatus = function(ids){
             var params = {
                 vehicleIds : ids
             };
             $.ajax({
                 url : appCtx+'/gis/monitor/queryVehicleStatus.html',
                 data : params,
                 callback : function(data){
                     if(data.code == g.successCode){
                         var da = data.data;
                         var offline = da.offline;
                         var online = da.online;
                         var offlineLen = offline.length;
                         var onlineLen = online.length;
                         for(var i=0;i<offlineLen;i++){
                             $('#searchVhicleId_'+offline[i]).find('.isonline').removeClass('isonline_true').addClass('isonline_false');
                         }
                         for(var i=0;i<onlineLen;i++){
                             $('#searchVhicleId_'+online[i]).find('.isonline').removeClass('isonline_false').addClass('isonline_true');
                         }
                     }else{
                         console.log(data.code);                 
                     }
                 }
             });
         };
        var formmatAction = function (ID,registration_no,vin,terminal_id,isonline){
            var name = vin;
            if(registration_no != "" && registration_no != "undefined" && registration_no != "null"){
                name = name + " (" + registration_no + ")";
            }
            var className = 'isonline_'+isonline + ' ' + 'isonline';
            var colname = '<div id="searchVhicleId_'+ID+'" data-vehicleID="'+ID+'" data-terminal_id="'+terminal_id+'"><span class="'+className+'"></span>'+name+'</div></div>';
            return colname;
        };
        $("#vehicleSeachTable").flexigrid({
            dataType : 'json',
            method : 'GET',
            colModel : [{
                display : 'vehicleId',
                name : 'vehicleId',
                width : 10,
                sortable : false,
                hide:true,
                align : 'center'
            },{
                display : '车牌号(自编号)',
                name : 'Handler',
                width : '80%',
                sortable : false,
                align : 'left',
                paramcolnames:["vehicleId","internalNumber","registrationNO","terminalId","isonline"],
                handlefunction:formmatAction
            }],
            resizable : false,
            sortname : "vehicleId",// 第一次加载数据时排序列
            sortorder : "desc",// 第一次加载数据时排序类型
            usepager : true,// 是否分页，默认为true。
            showToggleBtn : false,
            showTableToggleBtn : false,// 是否显示收起/打开按钮,默认不显示。
            useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
            rp : 100,// 每页记录数，默认为10
            rpOptions: [50,100,300,500], //每页结果数
            checkbox : true,// 是否要多选框,默认为false。
            rowId : 'ID',// 多选框绑定行的id,只有checkbox : true时才有效。
            singleSelect : true,
            width : '80%',// 表格宽度
            height : index.flexigridH, // 表格高度
            titDisplay:false,
            onSuccess : function(data){
            	if(timer){
                    clearInterval(timer);
                }
                var rows = data.rows,
                    len = data.rows,
                    arr = [];
                for(var i=0;i<len;i++){
					arr.push(rows[i].ID);
                }
                var ids = arr.toString();
//                timer = setInterval(function(){
//                    getVehicleStatus(ids);
//                },10000);
            },
            onSelectRow : function(row){
               
               
            },
            onSelectAllRow : function(data){

            }
        });
    },
    initSubscribeTable : function(){
    	var formmatAction = function (vehicleId){
    		var handleStr = "";
    		
    		handleStr = '<a href="javascript:void(0)" title="" >取消</a>&nbsp;&nbsp;<a href="javascript:void(0)" title="" >轨迹回放</a>&nbsp;&nbsp;<a href="javascript:void(0)" title="" >实时视频</a>';
    		
    		return handleStr;
        };
    	$("#monitorList").flexigrid({
            dataType : 'json',
            colModel : [{
            	display : '操作',
                name : 'Handler',
                width : 160,
                sortable : false,
                align : 'left',
				paramcolnames : ['vehicleId'],
				handlefunction:formmatAction
            },{
                display : '车辆ID',
                name : 'vehicleId',
                width : 120,
                sortable : false,
                align : 'center'
            },{
                display : '车牌号',
                name : 'vehicleNo',
                width : 120,
                sortable : false,
                align : 'center'
            },{
                display : '纬度',
                name : 'latitude',
                width : 120,
                sortable : false,
                align : 'left',    
            },{
                display : '经度',
                name : 'longitude',
                width : 120,
                sortable : false,
                align : 'left',    
            },{
                display : '终端类型',
                name : 'terminalTypeName',
                width : 120,
                sortable : false,
                align : 'left',    
            },{
                display : '终端ID',
                name : 'terminalId',
                width : 120,
                sortable : false,
                align : 'left',    
            }],
            resizable : false,
            sortname : "vehicleId",// 第一次加载数据时排序列
            sortorder : "desc",// 第一次加载数据时排序类型
            usepager : false,// 是否分页，默认为true。
            showToggleBtn : false,
            showTableToggleBtn : false,// 是否显示收起/打开按钮,默认不显示。
            useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
            rp : 100,// 每页记录数，默认为10
            rpOptions: [50,100,300,500], //每页结果数
            checkbox : false,// 是否要多选框,默认为false。
            rowId : 'ID',// 多选框绑定行的id,只有checkbox : true时才有效。
            singleSelect : true,
            width : '80%',// 表格宽度
            //height : index.flexigridH, // 表格高度
            titDisplay:false,
            onSuccess : function(data){
            	
            },
            onSelectRow : function(row){
            	index.marker=mapTool.addMarker(index.map,116.405467, 39.907761);
            },
            onSelectAllRow : function(data){

            }
        });
    	
    	
    },
    zTreeOnCheck : function(e, treeId, treeNode){
    	if (treeNode.TYPE == 1) {// 企业
    		var terminalList = []; // 
    		var childrenNode = carTree.transformToArray(treeNode);// 取得所有下级
    		for (var i = 0; i < childrenNode.length; i++) {
    			if (childrenNode[i].TYPE == 2) {
    				var terminalID = childrenNode[i].TID.toString();
    				terminalList.push(terminalID);
    			}
    		}
    		if (terminalList.length > 0) {
    			if (treeNode.checked) {
    				index.subScribe(terminalList);// 订阅
    			} else {
    				index.unSubscribe(terminalList);
    			}
    		}
    	} else {// 车辆
    		var terminalID = treeNode.TID.toString();
    		if (treeNode.checked) {
    			index.subScribe(terminalID);
    		} else {
    			index.unSubscribe(terminalID);
    		}
    	}
    },
    /**普通查询*/
    searchTable : function(){
        var sarchVal = $.trim($('.search-input').val());
        var paramsGrid = [{
            name : 'keyWord',
            value : sarchVal
        }];
        $("#vehicleSeachTable").flexOptions({
    		url : appCtx+'gis/monitor/queryVehicleByCondition.html',
    		newp : 1,// 设置起始页
    		params : paramsGrid
    	}).flexReload();// 重新加载  
    },
    subScribe : function(terminalID){
    	 var timer;
    	 var getSubScribeData = function(terminalID){
             
             $.ajax({
                 url : 'gis/monitor/subScribe.html?terminalID='+terminalID,
                 method : 'GET',
                 //data : terminalID,
                 success : function(data){
                     if(data){
                    	 $("#monitorList").flexAddData({"rows":""});
                    	 var item=[{latitude:36.641583,longitude:101.614258,terminalId:18,terminalType:0,terminalTypeName:"821FS",vehicleId:18,vehicleNo:"粤A12345"}];
                    	 var reuslt={"rows":item};
                 		$("#monitorList").flexAddData(reuslt);
                     }else{
                         console.log(data.code);                 
                     }
                 }
             });
         };
    	 //timer = setInterval(function(){
             getSubScribeData(terminalID);
    	 //},10000);
    },
    unSubscribe : function(){
    	$("#monitorList").flexAddData({"rows":""});
    	mapTool.clearMarker(index.marker);
    },
    bind : function(){
		var _this = this;
        //显示更多车辆详情
        $('.car-btn-hide').click(function(){
            if($(this).hasClass('active')){
                $(this).removeClass('active');
                $('.detail-more').hide();
            }else{
                $(this).addClass('active');
                $('.detail-more').show();
            }
        });

        //隐藏更多车辆详情
        $('.close-detail-more').click(function(){
            $('.car-btn-hide').removeClass('active');
            $('.detail-more').hide();
        });

        $('.look-bigimg').click(function(){
            _this.lookBigImg();
        });

        $('.lager-img').find('.close-pop').click(function(){
            $('.lager-img').hide();
            $('#mask').hide();
        });
        
        $('.search-btn').click(function(){	
        	_this.searchTable();
        	_this.treeTabInit.searchFunc(1);
        });

    }
};

index.init();
